Digital storage media command and control data indexing

ABSTRACT

A system for receiving satellite signals for display on a monitor. A system in accordance with the present invention comprises an antenna, a server receiver, coupled to the antenna, and at least one client receiver, coupled to the server receiver, wherein the server receiver maintains a list of satellite video signals to be recorded by the server receiver, the satellite video signals including network recorded data and metadata associated with the network recorded data, and wherein the list can be accessed by the server receiver and the at least one client receiver.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. Section 119(e) of co-pending and commonly-assigned U.S. provisional patent application, Ser. No. 60/814,450, filed Jun. 16, 2006, entitled “DIGITAL STORAGE MEDIA COMMAND AND CONTROL DATA INDEXING,” by Hanno Basse et al., which application is incorporated by reference herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to a satellite signal delivery system, and in particular, to presentation of various format bit streams within a satellite signal delivery system.

2. Description of the Related Art

Satellite broadcasting of communications signals has become commonplace. Satellite distribution of commercial signals for use in television programming currently utilizes multiple feedhorns on a single Outdoor Unit (ODU) which supply signals to up to eight IRDs on separate cables from a multiswitch.

FIG. 1 illustrates a typical satellite television system of the related art.

FIG. 1 shows a communications system, specifically a television broadcasting system 100, which transmits and receives audio, video, and data signals via satellite. Although the present invention is described in the context of a satellite-based television broadcasting system, the techniques described herein are equally applicable to other methods of program content delivery, such as terrestrial over-the-air systems, cable-based systems, and the Internet. Further, while the present invention will be described primarily with respect to television content (i.e. audio and video content), the present invention can be practiced with a wide variety of program content material, including video content, audio content, audio and video related content (e.g., television viewer channels), or data content (e.g., computer data).

Television broadcasting system 100 includes transmission station 102, uplink dish 104, at least one satellite 106, and receiver stations 108A-108C (collectively referred to as receiver stations 108). Transmission station 102, includes a plurality of inputs 110 for receiving various signals, such as analog television signals, digital television signals, video tape signals, original programming signals and computer generated signals containing HTML content. Additionally, inputs 110 receive signals from digital video servers having hard discs or other digital storage media. Transmission station 102 also includes a plurality of timing inputs 112, which provide electronic schedule information about the timing and content of various television channels, such as that found in television schedules contained in newspapers and television guides. Transmission station 102 converts the data from timing inputs 112 into program guide data. Program guide data may also be manually entered at the site of transmission station 102. The program guide data consists of a plurality of “objects”. The program guide data objects include data for constructing an electronic program guide that is ultimately displayed on a user's television.

Transmission station 102 receives and processes the various input signals received on inputs 110 and timing inputs 112, converts the received signals into a standard form, combines the standard signals into a single output data stream 114, and continuously sends output data stream 114 to uplink dish 104. Output data stream 114 is a digital data stream that is typically compressed using MPEG2 encoding, although other compression schemes may be used.

The digital data in output data stream 114 are divided into a plurality of packets, with each such packet marked with a Service Channel Identification (SCID) number. The SCIDs can be used by a receiver in receiver station 108 to identify the packets that correspond to each television channel. Error correction data is also included in output data stream 114.

Output data stream 114 is typically a multiplexed signal that is modulated by transmission station 102 using standard frequency and polarization modulation techniques. Output data stream 114 preferably includes a plurality of frequency bands, typically sixteen frequency bands, with each frequency band being either left polarized or right polarized. Alternatively, vertical and horizontal polarizations may be used.

Uplink dish 104 continuously receives output data stream 114 from transmission station 102, amplifies the received signal and transmits signal 116 to at least one satellite 106. Although a single uplink dish 104 and three satellites 106 are shown in FIG. 1, multiple uplink dishes 104 and a larger number of satellites 106 are preferably used to provide additional bandwidth, and to help ensure continuous delivery of signals 114 to receiver stations 108.

Satellites 106 revolve in geosynchronous orbit about the earth. Satellites 106 each include a plurality of transponders that receive signals 116 transmitted by uplink dish 104, amplify the received signals 116, frequency shift the received signals 116 to different frequency bands, and then transmit the amplified, frequency shifted signals 118 back to desired geographic areas on the Earth, where receiver stations 108 are located or will be located at some time in the future. Receiver stations 108 then receive and process the signals 118 transmitted by satellites 106.

Each satellite 106 typically broadcasts signals 118 in thirty-two (32) different frequencies, which are licensed to various users for broadcasting of programming, which can be audio, video, or data signals, or any combination. These signals are typically located in the Ku-band of frequencies, i.e., 11-18 GHz, but can be broadcast in the Ka-band of frequencies, i.e., 18-40 GHz, more typically in the 20-30 GHz range, or other frequency bands.

FIG. 2 is a block diagram of one of receiver stations 108, which receives and decodes audio, video and data signals. Typically, receiver station 108 is a “set top box,” also known as an Integrated Receiver Decoder (ERD), which is usually resident in a home or multi-dwelling unit, for reception of satellite broadcasted television signals 118.

Receiver dish 200 can be an Outdoor Unit (ODU), which is usually a smaller dish antenna mounted on a home or multi-dwelling unit. However, receiver dish 200 can also be a larger ground-mounted antenna dish if desired.

Receiver dish 200 typically uses a reflector dish and feedhorn assembly to receive and direct downlink signals 118 to receiver station 108 via a wire or coaxial cable. Each receiver station has a dedicated cable that allows receiver dish 200, via a multiswitch, to selectively direct downlink signals 118 to receiver station 108, and allows receiver station 108 to determine which of the signals 118 is desired.

Receiver station 108 includes receiver dish 200, alternate content source 202, receiver 204, monitor 206, recording device 208, remote control 210 and access card 212. Receiver 204 includes tuner 214/demodulator/Forward Error Correction (FEC) decoder 216, digital-to-analog (D/A) converter 218, CPU 220, clock 222, memory 224, logic circuit 226, interface 228, infrared (IR) receiver 230 and access card interface 232. Receiver dish 200 receives signals 118 sent by satellites 106, amplifies the signals 118 and passes the signals 118 on to tuner 214. Tuner 214 and demodulator/FEC decoder 216 operate under control of CPU 220.

The CPU 220 operates under control of an operating system stored in the memory 224 or within an auxiliary memory within the CPU 220. The functions performed by CPU 220 are controlled by one or more control programs or applications stored in memory 224. Operating system and applications are comprised of instructions which, when read and executed by the CPU 220, cause the receiver 204 to perform the functions and steps necessary to implement and/or use the present invention, typically, by accessing and manipulating data stored in the memory 224. Instructions implementing such applications are tangibly embodied in a computer-readable medium, such as the memory 224 or the access card 212. The CPU 220 may also communicate with other devices through interface 228 or the receiver dish 200 to accept commands or instructions to be stored in the memory 224, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device” and “computer program product” as used herein are intended to encompass any application accessible by the CPU 220 from any computer readable device or media.

Memory 224 and access card 212 store a variety of parameters for receiver 204, such as a list of channels receiver 204 is authorized to process and generate displays for; the zip code and area code for the area in which receiver 204 is used; the model name or number of receiver 204; a serial number of receiver 204; a serial number of access card 212; the name, address and phone number of the owner of receiver 204; and the name of the manufacturer of receiver 204.

Access card 212 is removable from receiver 204 (as shown in FIG. 2). When inserted into receiver 204, access card 212 is coupled to access card interface 232, which communicates via interface 228 to a customer service center (not pictured). Access card 212 receives access authorization information from the customer service center based on a user's particular account information. In addition, access card 212 and the customer service center communicate regarding billing and ordering of services.

Clock 222 provides the current local time to CPU 220. Interface 228 is preferably coupled to a telephone jack 234 at the site of receiver station 108. Interface 228 allows receiver 204 to communicate with transmission station 102 as shown in FIG. 1 via telephone jack 234. Interface 228 may also be used to transfer data to and from a network, such as the Internet.

The signals sent from receiver dish 200 to tuner 214 are a plurality of modulated Radio Frequency (RF) signals. The desired RF signal is then downconverted to baseband by the tuner 214, which also generates in-phase and quadrature-phase (I and Q) signals. These two signals are then passed to the demodulator/FEC Application Specific Integrated Circuit (ASIC) 216. The demodulator 216 ASIC then demodulates the I and Q signals, and the FEC decoder correctly identifies each transmitted symbol. The received symbols for Quaternary Phase Shift Keying (QPSK) or 8 PSK signals carry two or three data bits, respectively. The corrected symbols are translated into data bits, which in turn are assembled in to payload data bytes, and ultimately into data packets. The data packets may carry 130 data bytes or 188 bytes (187 data bytes and 1 sync byte).

In addition to the digital satellite signals received by receiver dish 200, other sources of television content are also preferably used. For example, alternate content source 202 provides additional television content to monitor 206. Alternate content source 202 is coupled to tuner 214. Alternate content source 202 can be an antenna for receiving off the air signals National Television Standards Committee (NTSC) signals, a cable for receiving American Television Standards Committee (ATSC) signals, or other content source. Although only one alternate content source 202 is shown, multiple sources can be used.

Initially, as data enters receiver 204, CPU 220 looks for initialization data which is referred to commonly in the industry as a boot object. A boot object identifies the SCIDs where all other program guide objects can be found. Boot objects are always transmitted with the same SCID, so CPU 220 knows that it must look for packets marked with that SCID. The information from the boot object is used by CPU 220 to identify packets of program guide data and route them to memory 224.

Remote control 210 emits Infrared (IR) signals 236 that are received by infrared receiver 230 in receiver 204. Other types of data entry devices may alternatively be used, by way of example and not limitation, such as an ultra-high frequency (UHF) remote control, a keypad on receiver 204, a remote keyboard and a remote mouse. When a user requests the display of a program guide by pressing the “guide” button on remote control 210, a guide request signal is received by IR receiver 230 and transmitted to logic circuit 226. Logic circuit 226 informs CPU 220 of the guide request. In response to the guide request, CPU 220 causes memory 224 to transfer a program guide digital image to D/A converter 218. D/A converter 218 converts the program guide digital image into a standard analog television signal, which is then transmitted to monitor 206. Monitor 206 then displays the TV video and audio signals. Monitor 206 may alternatively be a digital television, in which case no digital to analog conversion in receiver 204 is necessary.

Users interact with the electronic program guide using remote control 210. Examples of user interactions include selecting a particular,channel or requesting additional guide information. When a user selects a channel using remote control 210, IR receiver 230 relays the user's selection to logic circuit 226, which then passes the selection on to memory 224 where it is accessed by CPU 220. CPU 220 performs an MPEG2 decoding step on received audio, video, and other packets from FEC decoder 216 and outputs the audio and video signals for the selected channel to D/A converter 218. D/A converter 218 converts the digital signals to analog signals, and outputs the analog signals to monitor 206.

As the number of satellites 106 increases, the number of programming choices increases. Further, as users add additional television monitors 206 to a home, each monitor 206 requires, in the related art system 200, a dedicated cable from receiver 204 to receiver dish 200, for control and delivery of downlink signals 118. This creates difficulties for users in terms of running additional cables and adding possibly unnecessary receiver 204 hardware in a given receiver station 108 installation.

It can be seen, then, that there is a need in the art for a more intelligent satellite data delivery system.

SUMMARY OF THE INVENTION

To minimize the limitations in the prior art, and to minimize other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a system and method for storing media commands and indexing control data.

A system for receiving satellite video signals for display on a monitor in accordance with the present invention comprises an antenna, and a server receiver, coupled to the antenna, wherein the server receiver maintains a list of satellite video signals to be recorded by the server receiver, the satellite video signals including network recorded data and metadata associated with the network recorded data.

Such a system further optionally comprises at least one client receiver, coupled to the server receiver, wherein the list is accessed by the server receiver and the at least one client receiver, when there is a conflict on the list, the server receiver resolves the conflict based on a predetermined protocol, the list including push events, the metadata being used to index the list, the at least one client receiver sending a request to the server receiver to record a selected satellite video signal, the server receiver reserving resources needed to fulfill the request from the at least one client receiver, the request being stored in a list by the server receiver, the list comprising requests that do not conflict with other requests, metadata associated with each request in the list being stored by the server receiver, the metadata associated with the satellite video signals being periodically updated, and the server receiver managing the stored requests based on the periodically updated metadata.

An apparatus for displaying video information in accordance with the present invention comprises a broadcast delivery system comprising a transmitter and a first receiver, a first monitor, coupled to the first receiver, a processor, coupled to the first receiver, wherein the processor maintains a list of satellite video signals to be recorded by the first receiver, the video information including network recorded data and metadata associated with the network recorded data.

Such an apparatus further optionally comprises at least one second receiver communicatively coupled with the first receiver, wherein the list is accessed by the first receiver and the at least one second receiver, at least one second monitor, respectively coupled to the at least one second receiver, wherein the first monitor and the second monitor independently display video information based on signal selection in the first receiver and the at least one second receiver, when there is a conflict on the list, the first receiver resolves the conflict based on a predetermined protocol, the metadata being used to index the list, the at least one second receiver sends a request to the first receiver to record a selected satellite video signal, the first receiver reserving resources needed to fulfill the request from the at least one second receiver, and metadata associated with each request in the list being stored by the first receiver.

Other features and advantages are inherent in the system and method claimed and disclosed or will become apparent to those skilled in the art from the following detailed description and its accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers represent corresponding parts throughout:

FIG. 1 illustrates a typical satellite system of the related art;

FIG. 2 illustrates a typical receiver of the related art;

FIG. 3 illustrates a system diagram of the present invention;

FIG. 4 illustrates a block diagram of the services provided by the home media center of the present invention; and

FIGS. 5-7 illustrate system processing for managing resource requests and reservations as performed by the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanying drawings which form a part hereof, and which show, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

System Overview

FIG. 3 illustrates a system diagram of the present invention.

In the present invention, ODU 108 is coupled to Frequency Translation Module (FTM) 300. FTM 300 is coupled via cable 302 to Server IRD 304. FTM 300 is also coupled to legacy IRD 112 via cable 124, although, alternatively, Legacy IRD 112 can be coupled to Server IRD 304 via cable 306. Server IRD 308 is further coupled via cable 308 to Client IRDs 310. There can be more than one server IRD 308 in a given location if desired. One or more server IRDs 304 are also called a “Home Media Center” (HMC) 312.

HMC 312 acts as a central location for recording, distribution, and scheduling of tasks and system resources for the present invention. HMC 312 allocates resources to client IRDs 310 as needed, depending on the client IRD 310 requests sent to HMC 312 via cable 308.

Client IRD 308 makes requests for recording events, specific channels to view, and other system resources to HMC 312. HMC 312 processes all of the requests from all Client IRDs 310, and any legacy IRDs 112, and either fulfills the request or informs the user of a given IRD 310 that the request cannot be fulfilled. For example, if a user of a given client IRD 310 wants to record a program, and the HMC 312 is using the Digital Video Recorder (DVR) for another purpose, the HMC 312 would inform the user of the given client IRD 310 that the DVR is unavailable at the present time. HMC 312 can also provide the user with options to assist in fulfilling the request, such as telling the user when the DVR would be available, what the DVR is recording so that the user can choose to override the current DVR usage, or allow the user to make other resource allocations to allow for the present request to be fulfilled.

The two-way communication between HMC 312 and client IRD 310 takes place via cable 308, or via other wiring, such as power distribution lines or phone lines that are present within house 110.

Overview

The HMC 312 allows for Digital Video Recording functionality to every TV in house 110 without having a DVR present in every client IRD 310. The HMC 312 comprises one or more server IRDs 308 that act as a central hub. A Server IRD 308 receives and optionally records programming received from the satellite signals received by ODU 108. One or more client IRDs 310 connect to the HMC 312 via one or more cables 308 in order to receive audio, video and data and display these to a television monitor.

The HMC 312, via server IRD 308, is a high-definition (HD) receiver based on MPEG-2 or MPEG-4 transport streams, in addition to other proprietary formats used for legacy IRD 112. The HMC 112 also introduces Advanced Modulation/Coding (AMC), which includes Low Density Parity Check (LDPC) coding.

LDPC coding with advanced modulation is a forward-error-correcting (FEC) code technique that outperforms conventional convolutional FEC (Reed-Solomon/Viterbi) coding schemes. LDPC coding provides a more bandwidth-efficient way to improve the bit-error rate of digital signals. The advanced modulation also provides higher Phase Shift Key (PSK) modulations. In PSK modulation, the carrier signal is transmitted in different phases according to the bit mapping. With 8 PSK, the number of phases is increased to eight to double the amount of information carried in the same bandwidth as a QPSK transmission.

The HMC 312 utilizes the MPEG-2 transport format and Advanced Modulation/LDPC coding and FTM 300 technologies to provide video, audio and data services to every monitor in house 110.

Advanced Modulation/Coding

The HMC 312 tunes to different satellite data streams, some with QPSK modulation and the Reed-Solomon FEC, and others using FEC and other Advanced Modulation/Coding technologies, to provide the desired signals to each of the client IRDs 310 present in house 310. This requires the HMC 312 to use at least two different sets of tuning parameters depending upon the satellite stream type that is to be decoded and used. For a legacy stream type, i.e., the QPSK modulation stream, the tuning parameters are network id, frequency, polarization, SCID (12 bits), modulation type and FEC type. For an advanced modulation stream, i.e., a “A3 stream” type, the tuning parameters are network id, frequency, polarization, PID (13 bits), mode id, symbol rate, roll off factor, physical layer header unique word (PLH_UW), gold code sequence scrambler and pilot indicator.

Comparing the two types of data streams, it is seen that that the A3 stream coding parameters are mode id, symbol rate, roll off factor, physical layer header unique word, gold sequence scrambler and pilot indicator. Each of these parameters is described below.

Mode Id

There are a total of 28 modulation/coding modes supported by the A3 advanced demodulation and decoding methodology. Each of these modes varies the modulation type (i.e., QPSK or 8 PSK), the FEC algorithm (i.e., Reed-Solomon (RS) or Low Density Parity Check/Bose, Chaudhuri, Hocquenghem (LDPC/BCH)) and the amount of FEC (i.e., ¼, ½, ⅗, ⅔, ¾, ⅘, ⅚, 6/7, 8/9 and 9/10).

Symbol Rate

The Symbol Rate defines the bandwidth capacity of a QPSK or 8 PSK modulated signal. The symbol rate can have a value of 20 MSymbols/s for all legacy transport streams and 20 MSymbols/s or 30 MSymbols/s for all non-legacy transport streams.

Roll Off Factor

The roll-off factor (α) is used for filtering the signal using a baseband square root raised cosine filter. The roll-off factor can have values of 0.20, 0.25 and 0.35.

Physical Layer Header Unique Word

The Physical Layer Header (PLHEADER) is a 90-bit header applied to each 64,800-bit FEC frame. The PLHEADER consists of a 26-bit Start-of-Frame (SOF) and a unique 64-bit Physical Layer Signal (PLS) code. The SOF is fixed as 0×18D2E82. The PLS code can vary for each transport stream. A 90-bit PLH_UW is XOR'd with the PLHEADER. PLHEADER is not used in the legacy and DVBS modes, and is used in the QPSK and 8 PSK advanced modes

Gold Sequence Scrambler

The Gold Sequence Scrambler is an 18-bit value used to randomize the modulation phase (I,Q) for transmission of symbols in an FEC frame. The Gold Sequence Scrambler is used on each FEC frame excluding the PLHEADER. The Gold Sequence Scrambler is not used in the legacy and DVBS modes. It's only used in the QPSK and 8 PSK advanced modes

Pilot Indicator

The pilot indicator is a 1-bit field indicating whether pilot symbols have been inserted in an FEC frame. Pilot symbols assist in carrier tracking by inserting an un-modulated raster of 36 symbols every 1440 symbols in an FEC frame. The pilot-less transmission mode is also available with the advantage of offering an additional 2% useful capacity. Pilot symbols are not used in the legacy and DVBS modes. They are only used in the QPSK and 8 PSK advanced modes.

Interactions Between Server and Client

In the present invention, HMC 312 (via server IRD 308) and client IRDs 310 must interact to allow each of the client IRDs 310 to receive the data stream (e.g., desired television channel audio and video stream) that is being requested at that client IRD 310, as well as any other services being requested by the client IRD 310. For example, a given IRD 310 can send a request to HMC 312 to view a specific channel, record that channel, record a program that is occurring at a later time, purchase a pay-per-view event, purchase a movie to be recorded onto the DVR, and other requests. The HMC 312 coordinates all of these requests from all of the client IRDs 310 connected to the HMC 312, and resolve any conflicts between the requests via reporting the conflicts to the user and allowing the user to manually select system resources to fulfill the requests as best as possible.

FIG. 4 illustrates a block diagram of the services provided by the home media center of the present invention.

Several types of services are provided via HMC 312. Such services include recording services 400, playback services 402, purchase services 404, playback mode support 406, and resource management 408, and live television services 410, which are described with respect to FIG. 4.

Recording Services

The Recording Service 400 receives booking and recording requests from the Client IRD 310 and the Server IRD 308. The Recording Service 400 makes a determination of the events to record based on responses received from other components (e.g., resource manager 408, etc.). The Recording service 400 via a DVR Writer records the booked event and all associated metadata at the scheduled start time and for the specified duration. The status of the recording is reported to the Playback mode support 406 for viewing by a user.

The Recording Service 400 allows the viewer to purchase and record events. The Recording Service processes incoming booking requests received locally or over the network from both Home Media Servers 308 and Home Media Clients 310. The types of events that may be booked include mandatory and optional software downloads, single (explicit) event recording, recurring event recording, opt-in recording, network scheduled (push) recording, manual recording, recurring manual recordings, find recordings, recording extensions, deletion of booked events, and prioritization of recurring events.

The Recording Service 400 interfaces with the Resource Manager 408 to resolve scheduling conflicts for requested events. The Recording Service 400 interfaces with the Resource Manager 408 to reserve the necessary resources for recording the requested event. The Recording Service 400 maintains a conflict-free list of pending booked events and synchronizes this list across all Clients 310 and Servers 308 in the Home Media network. The Recording Service 400 links the events in the pending list to the resources reserved and managed by the Resource Manager 408. The Recording Service 400 manages the content stored on the local drive, removing content when the drive reaches capacity. The Recording Service 400 stores the metadata necessary for the viewer to view and purchase a recording. The Recording Service 400 initiates the recording of a booked event at the scheduled start time and for the scheduled duration. The Recording Service 400 processes updates to the scheduled start time and duration or booked events when the APG database is updated. The Recording Service 400 updates the playback Manager 406 with events that are available for viewing.

Home Media Clients 310 and Home Media Servers 308 use the Recording Service 400 to book events, delete booked events, prioritize booked events and delete content from the Server.

All Client 310 requests are received by a “Recording Proxy Service” local to the Client 310 initiating the request. The Recording Proxy is responsible for communicating requests between Client 310 and Server 304 over the Home Media Network.

Upon receiving a booking request from a Client 310 or Server 304 the Recording Service 400 requests the Resource Manager 408 to reserve the resources necessary for the recording. The Resource Manager 408 interfaces, with the Conflict Resolver 412 to perform the necessary conflict resolution on behalf of the Recording Service 400. If no conflicts exist and the resources are available the Resource Manager 408 will reserve a resource bundle (a “video pipeline”, which includes the tuner, demultiplexer and necessary disk space) to handle that request. The event is booked when no conflicts exist, or all conflicts are resolved (either automatically or via the viewer) and the resources necessary for recording are reserved.

The Recording Service 400 maintains an internal conflict-free list of booked events. The Recording Service 400 queries the available resources and other metadata associated with network recorded data (such as the APG) and stores these data in the conflict-free list of bookings. The Recording Service 400 will initiate recording of the booked event at the scheduled start time and for the specified duration. The Recording Service 400 gives the PIP, rating information and CGMS values to the DVR Writer at the scheduled event start time. The DVR Writer will store these metadata in the Metadata Indexer/Rasp service at recording time.

The Recording Service 400 updates the playback Manager 406 with events that are available for viewing. An event is available for viewing when recording begins unless the event is a network scheduled recording (push event). Push events are available for viewing only after the event is complete. The Recording Service 400 also supplies the Playback Manager 406 with the metadata to be associated with the event. The Playback Manager 406 stores these metadata until the event is deleted from the Server 304.

The Recording Service 400 receives APG updates via a callback mechanism. When an APG update is received the Recording Service 400 will 1) attempt to search for and book new events that match the recording requests; and 2) determine if the updated event information causes scheduling conflicts with existing bookings. New conflicts are passed to the Conflict Resolver 412 for conflict resolution. The Recording Service 400 will attempt to rebook lower priority events that are cancelled due to the conflict resolution process.

The Recording Service 400 manages all recorded material on the Server 304, removing content when the drive reaches capacity on a priority or quota basis, or when content is flagged to expire by a specific date. The Recording Service 400 notifies the Playback Manager 406 and DVR Writer at the time of content deletion allowing these services remove the metadata associated with the deleted event.

The Recording Service 400 controls all recordings and tuning requests using the CDI API. The Recording Service 400 controls the streaming of a pre-recorded or live event to a remote viewing device in a multi-TV household.

The Conflict Resolver 412 determines, or asks the viewer in some situations to determine, which set of conflicting activities (e.g., recording, Live-TV, etc.) should use HMC 312 resources (tuners, demultiplexer, disk space, etc) for a specified timeframe.

Standard Booking Algorithm

Bookings shall be allowed according to the following “standard booking algorithm.” The HMC Server 304 or HMC Client 310 STB shall allow the viewer to book any event for recording, even if the event exceeds the specified ratings limit or the event exceeds the minimum hardware requirements for that STB on which the event is booked. The HMC Server 304 shall support the direct viewing of “Live TV” and shall bypass the Recording Service 400 for viewing Live TV on the HMC Client STBs via live television support 410 as shown in FIG. 4.

Playback of recorded content shall behave similarly to live viewing, with the following exceptions. Playback of recorded content via Playback Service 402 is allowed only if the viewer is a DVR subscriber, the HMC Server 304 or HMC Client 310 STB shall only allow the viewer to playback events that meet the minimum hardware requirements for that given STB, the HMC Server 304 or HMC Client 310 STB shall only allow the viewer to view an event using live television support 410 when that event meets the minimum hardware requirements for that STB, the HMC Server 304 or HMC Client 310 STB shall allow the viewer to transfer a currently playing recording to another STB only if that target STB meets the hardware requirements for that event, the HMC Server 304 or HMC Client 310 STB shall display an OSD when the minimum hardware requirements are exceeded, or other defined events. The Playback Service 402 acts as a verification standard to ensure that whichever Server 304 or Client 310 is requesting playback can support such a request, and if the request cannot be fulfilled, the user is queried as to how best to proceed such that the request can be fulfilled.

Playback of Recorded Content

The Playback service 402 shall play back events and services recorded via Recording service 400, and display a list of network-scheduled recorded events, as well as allow for purchase of those events requiring purchase via purchasing manager 404. Recorded content shall remain on the disk, whether on the viewer controlled portion of the disk or the network controlled portion of the disk, until delete conditions are met. Ratings of the recorded events are checked by the playback service 402 to ensure that the defined rating limit is not exceeded by the recorded event during playback. The rating can be checked continuously or periodically, and the user can override the rating limit by manual entry of a passcode or other method.

The purchase manager 404 shall only allow purchase of an event at playback if a PIP was stored at time of booking or recording. If there is a PIP stored with the event, it is sent to the CAM to determine viewing options when the viewer selects the event for viewing prior to starting playback.

If the event requires purchase, the user can purchase the event. The purchase manager 404 may comprise a spending limit, which can be set for a given client 310, group of clients 310, server 304 or group of servers 304, or for the entire system, as well as allowing the viewer to override the spending limit on a global or per-event basis using an OSD. Cancellation of the purchase can be done via the purchase manager 404 if cancellation is performed prior to a pre-determined time or event that occurs during the purchased event, such as prior to viewing the non-free preview portion of the event. Multi-part events can be presented to the user via the purchase manager 404 to allow the multi-part event to be purchased individually or as a set.

Review Buffer

The HMC Server shall associate a review buffer 414 with live television support 410 for a live Television viewing session. A Live TV Viewing Session is associated with a client 310 or server 304 STB. The HMC Server 304 shall continue to record Live TV to the review buffer 414 even if no HMC Server 304 or HMC Client 310 STB is viewing content in that review buffer 414. There is typically an OSD displayed on monitor 206 to a viewer when that STB is in a Live TV viewing session and that tuner is to be tuned to a different channel. The STB shall attempt to utilize a free tuner for a channel change, if no free tuners are available an OSD is displayed. The STB shall continue recording to that tuner's review buffer 414 until the tuner is tuned to a different channel. The HMC Server 304 shall store only a single instance of the same event to the review buffer 414 if two or more Client 310 or server 304 STBs select the same event for recording when those STBs are tuned to the same channel. The HMC Server 304 STB shall store the review buffer 414 in the viewer partition of the disk. The HMC Server STB shall flush a review buffer 414 upon channel change.

Resource Allocation and Management

The Resource Manager 408 defines the resource pipelines required for specific activities and builds resource pipelines by acquiring or reserving resources for requesting activities, manages resource reservations to make the best use of available resources at any point in time, detects and mediates resource conflicts with the Conflict Resolver 412, and re-optimizes the set of reservations as the set of requests changes or resource distribution changes. The Resource Manager 408 grants or rejects resource requests to make the best use of available resources. The resource manager 408 internally maintains a non-conflicting resource reservation database to keep track of resource allocation across the whole network.

When a requesting activity needs a particular type of pipeline (e.g., for live-tv viewing, recording only, playback only, recording and playback), the Resource Manager 408 determines what resources are necessary to create or construct a pipeline that can support that request. The resource manager 408 also examines all pipeline resources available to determine whether or not the request can be satisfied.

When the Resource Manager 408 encounters a resource conflict during a viewer or service activity, it compiles a list of groups of resources, called “sufficient sets,” and submits this list with a request to the Conflict Resolver 412 to get assistance in resolving the conflict. The Conflict Resolver 412 module, based on the nature of the activity and the nature of the conflict, returns either a list of sufficient sets sorted according to the conflict resolution policy or requests viewer interaction. Based on the information received from the Conflict Resolver 412 module, the resource manager 408 will make a decision to allow the conflict-causing activity to proceed, after freeing up the required resource, reject the activity or to present the conflict to the viewer on monitor 206.

A sufficient set comprises one or more activities that conflict with the requesting activity over the timeframe of the requesting activity. Each Sufficient Set comprises a set of activities that if cancelled, would free sufficient resources to resolve the resource conflict for the requesting activity.

As the set of requests changes (recording requests are scheduled or canceled, or playback sessions are initiated or terminated), the Resource Manager 408 automatically updates the set of reservations. Similarly, as resources are added to or removed from the network, the Resource Manager 408 reevaluates and reschedules the set of reservations. Resources acquired for an activity are released by the activity when the activity is canceled or completed, with the exception of the disk storage resource, which is released only when the file is deleted.

The Resource Manager 408 checks whether an activity can share the same resource with another activity, and if so, will allocate only one resource for both activities. For example, when two event recordings occur on the same channel and the two events overlap due to recording extensions, the Resource Manager 408 recognizes that the overlap exists on a single channel and allocates only one tuner to record both events. That is, the Resource Manager 408 should not allocate a second tuner for recording when the overlap begins since both events are on the same channel.

Resource Types and Pipelines

Resources (devices and services) discovered by the resource manager 408 may operate as managed or unmanaged resources. Those resources that provide limits to system behavior (such as tuners, the number of which determines an upper limit on the number of concurrent recordings) are treated as managed resources. Managed resources are registered with the Resource Manager 408, and their use is scheduled (reserved and acquired) through Resource Manager 408. Unmanaged resources, on the other hand, are registered with the system but are not managed by the Resource Manager. For example, tuners and disk space are managed resources, registered with the Resource Manager 408 and scheduled for use to satisfy recording requests. Memory is not registered with the Resource Manager 408 and is not scheduled for use.

The processing of a broadcast service requires the use of a set of hardware devices, which is typically called a TV-pipeline. Typically, a TV pipeline is a grouping of the following resources:

Tuner, Demultiplexer, SCID/PID Filter, Remultiplexer, Video Decoder Device, Audio Decoder Device, Disk Space, Disk Bandwidth, Network Bandwidth and CAM.

Typically, the Resource Manager 408 is constrained to manage access to the tuner, demultiplexer, remultiplexer (only used for recording and live viewing), SCID/PID filters, disk bandwidth, network bandwidth, and disk space. The other resources including video decoder, audio decoder and the key generation capacity of CAM are assumed to be sufficient and non-conflicted in any case.

The Resource Manager 408 accepts resource requests for a specified timeframe, typically during three specific events during the life-cycle of an server 308 or client 310 activity. These times are the resource scheduling time, the resource pre-acquisition time, and the resource acquisition time.

All three of these events occur for some types of activities such as future one-time recordings, future multiple-event recordings, etc. These types of activities must request resources from the Resource Manager 408 at all three events. Other types of activities, such as live TV viewing, cannot be scheduled and/or pre-acquired. These types of activities require resources to be immediately acquired or pre-acquired n minutes before the start time.

A resource scheduling request is used to attempt to reserve resources for a future activity. For example, a one-time recording request for next week Wednesday will require resources to perform that recording.

A resource pre-acquisition request is used to attempt to pre-acquire resource n-minutes prior to the start time of a requesting activity, and make sure there is no resource conflict occurring at this Resource Pre-Acquisition event. If there are no conflicts, a “weak-binding” between the pre-acquired resource and the requesting activity is created. For example, a previously scheduled one-time recording pre-acquisition request for 7 pm tonight will reconfirm its resource reservation by 6:55 pm and the weak-binding will trigger a “2 minute warning” OSD on the UI.

A resource is acquired at the start time of a requesting activity and is strong-binded to that activity. For example, a live-viewing session request for immediate-possession of a live-viewing pipeline is hard-binded and cannot be used for any other activity without intervention by the user.

Resource Request and Reservation

A high-level summary of the system processing of Resource Manager for managing resource requests and reservations is provided as flow diagrams is provided in FIGS. 5-7.

Resource Scheduling

FIG. 5 illustrates block 500, which indicates that the resource manager 408 is performing a resource scheduling task. In block 502, the resource manager 408 examines the availability of the resources, not including disk bandwidth, or other network bandwidth or disk space. After this review, decision block 504 is entered to see if there are any conflicts.

If there are no conflicts found in decision block 504, the system moves on to resource pre-acquisition block 506. If there are conflicts, conflict resolver 412 is called in block 508 to determine where the conflicts are and how to resolve them.

Initially, conflict resolver 412 must determine if user interaction is required, which is done in block 510. If no user interaction is needed, control passes to block 512. If user interaction is required, conflict resolver 412 presents a conflicting activity screen to the user in block 514, along with a prioritized list of sufficient sets to perform all the requested activities, so that the user can decide which activities are desired.

If the user cancels the requested activity of block 500 in block 516, control passes to block 518, where the resource scheduling request is denied. This request is then stored in memory in block 520.

The resource manager 408 then determines if the resource needed for the denied request is available in block 522, and if not, passes control to block 524, where resource manager 408 determines if the denied request has expired, typically via elapse of time. If not, resource manager 408 continues to monitor the denied request, just incase some other changes to the system are made in the future, until the request does expire, in which case, the resource scheduling request of block 500 ends in block 526. If the resource becomes available in block 522 because of some other change in the system, control passes back to block 502, and the resource manager 408 and conflict resolver 412 work to determine if the request can now be granted.

Returning to block 510, if the conflict can be resolved by the conflict resolver 412 without user intervention, conflict resolver 412 must determine, in block 512, whether the requested activity can be granted by revoking a sufficient set rather than the requested activity itself. If so, then control passes to block 528. Where the conflict resolver 412 cancels resource reservations for other events, typically using a priority schema, to allow the requested activity of block 500 to go forward. Once these reservations are canceled or otherwise rearranged, resource pre-acquisition in block 506 can take place for the requested activity.

If the conflict resolver 412 cannot rearrange or revoke the sufficient sets to grant the requested activity of block 500, control passes to block 518, and the process continues as described above with respect to blocks 518-524.

Returning to block 516, if the viewer does not cancel the requested activity, control passes to block 530, where resource manager 408 grants the requested activity in block 500 and cancels or otherwise arranges the outstanding resources. Control then passes to block 506 for pre-acquisition.

Resource Pre-Acquisition

In FIG. 6, pre-acquisition block 506 passes control to block 600, which determines the availability of pipeline resources for the network activity. Decision block 602 determines if there are any resource conflicts. If not, control passes to block 604, where resources are allocated for the request.

If there are conflicts, conflict resolver 412 is called in block 606 to determine where the conflicts are and how to resolve them.

Initially, conflict resolver 412 must determine if user interaction is required, which is done in block 608. If no user interaction is needed, control passes to block 610. If user interaction is required, conflict resolver 412 presents a conflicting activity screen to the user in block 612, along with a prioritized list of sufficient sets to perform all the requested activities, so that the user can decide which activities are desired.

If the user cancels the pre-acquisition activity of block 506, initially requested in block 500, in block 614, control passes to block 616, where the resource scheduling request is denied. This request is then stored in memory in block 618.

The resource manager 408 then determines if the resource needed for the denied request is available in block 620, and if not, passes control to block 622, where resource manager 408 determines if the denied request has expired, typically via elapse of time. If not, resource manager 408 continues to monitor the denied request, just incase some other changes to the system are made in the future, until the request does expire, in which case, the resource scheduling request of block 500 ends in block 624. If the resource becomes available in block 620 because of some other change in the system, control passes back to block 600, and the resource manager 408 and conflict resolver 412 work to determine if the request can now be granted.

Returning to block 608, if the conflict can be resolved by the conflict resolver 412 without user intervention, conflict resolver 412 must determine, in block 610, whether the requested activity can be granted by revoking a sufficient set rather than the requested activity itself. If so, then control passes to block 626. Where the conflict resolver 412 cancels resource reservations for other events, typically using a priority schema, to allow the requested activity of block 500 and pre-acquisition activity of block 506 to go forward.

If the conflict resolver 412 cannot rearrange or revoke the sufficient sets to grant the requested activity of block 500 and pre-acquisition activity of block 506, control passes to block 616, and the process continues as described above with respect to blocks 616-622.

Returning to block 614, if the viewer does not cancel the requested activity, control passes to block 628, where resource manager 408 cancels the viewer-selected sufficient set and weak-binds the requested activity and the allocated resources that were requested activity in block 500. Control then passes to block 604 for resource acquisition.

Resource Acquisition

FIG. 7 describes the flow of a resource acquisition event 604. Initially, decision block 700 is entered, which determines whether the acquisition of resources came from a pipeline request or a modem request. If a modem request, control passes to block 702, where the availability of modem access for the requesting activity is examined. Control then passes to block 704, where modem conflicts are determined. If there are no modem conflicts, control passes to block 706, where the resource acquisition is granted.

If there are modem conflicts, the conflict resolver 412 is queried in block 708 to solve the conflicts that are present. If the conflicts can,be resolved by revoking a sufficient set rather than the requesting activity in block 710, the request is granted in block 706; otherwise, the request is denied in block 712.

If block 700 determines that it is a pipeline request, then block 714 examines the availability of all pipeline resources. If there are no pipeline resource conflicts found in block 716, control passes to block 718 to determine if there are any disk space conflicts. If there are no disk space conflicts, the pipeline acquisition is granted in block 720.

If there are pipeline resource conflicts, conflict resolver 412 is called in block 718 to determine where the conflicts are and how to resolve them.

Initially, conflict resolver 412 must determine if user interaction is required, which is done in block 720. If no user interaction is needed, control passes to block 722. If user interaction is required, conflict resolver 412 presents a conflicting activity screen to the user in block 724, along with a prioritized list of sufficient sets to perform all the requested activities, so that the user can decide which activities are desired.

If the user cancels the resource acquisition activity 604, which was pre-acquisition activity of block 506, initially requested in block 500, in block 726, control passes to block 728, where the resource scheduling request is denied.

If the user does not cancel the requesting,activity, the viewer selected sufficient set is canceled in block 730, and control passes to block 718.

Returning to block 720, if the conflict can be resolved by the conflict resolver 412 without user intervention, conflict resolver 412 must determine, in block 722, whether the requested activity can be granted by revoking a sufficient set rather than the requested activity itself. If so, then control passes to block 732, where the conflict resolver 412 cancels resource reservations for other events, typically using a priority schema, to allow the requested activity of block 500 and pre-acquisition activity of block 506 to go forward. Control then passes to block 718.

If the conflict resolver 412 cannot rearrange or revoke the sufficient sets to grant the requested activity of block 500 and pre-acquisition activity of block 506, control passes to block 728, and the pipeline acquisition is denied.

If block 718 determines that there are disk space conflicts, the conflict resolver 412 is again called to resolve the conflict in block 734, and in block 736, resource manager 408 deletes content files as necessary and requested by the conflict resolver 412, to allow the acquisition 604 to go forward in block 720.

Resource Release

When an activity is canceled or completed, its resources will be released and become available for other uses. The resources acquired for live viewing or playback of a recorded program will be released when the viewing session initiates a superseding usage by starting another playback or by tuning to another channel. The Resource Manager 408 is notified that the resource is no longer being used, or if it is a managed resource, the resource manager 408 knows that the resource is no longer being used, and can schedule that resource to be used elsewhere in the system.

Weak Binding

Weak binding refers to a resource reservation granted by the Resource Manager 408 to a requesting activity during pre-acquisition time (n-minutes before the actual start time of the activity) such that the any activity that is using or attempts to use the weak-binding resource will be warned but will not be pre-empted until the resource is strongly bound to the requesting activity. For example, the Resource Manager 408 will trigger the UI to display a “2 minute warning” OSD if a live viewing or playback activity is currently using weak-binding resource or attempts to use weak-binding resource during the 2 minute period.

Conflict Resolver

The Conflict Resolver 412 allows control over which course of action to take when the HMC 312 activities encounter resource conflicts in a manner independent from the rest of the system. These conflicts may arise when concurrent viewer or service activities (live TV, recording, download, or playback) require more resources than are available in the HMC 312.

When the HMC 312 encounters a resource conflict during a viewer or service activity, it submits a request to the Conflict Resolver 412 to get assistance in resolving the conflict. The Conflict Resolver 412 module, based on the nature of the activity and the nature of the conflict, compiles a list of actions that can be taken to resolve the conflict. Based on the information received from the Conflict Resolver 412 module, the system will make a decision to allow the conflict-causing activity to proceed, after freeing up the required resource, reject the activity or to present the conflict to the viewer via the UI.

Trick Mode/Trick Play

The STB shall support Pause/Play Trick Play Bar functionality. The STB shall display the Trick Play Bar when any Trick Play Bar functions are requested by the viewer. The STB shall support Fast forward and rewind speeds of: 2×, 6×, 12× and 30×. The STB shall not timeout display of the Trick Play Bar in FF or REW mode.

Dedicated Tuner for Network Administration Functions

In addition, there can be a tuner within the HMC 312 that cannot be user controlled, e.g., by commanding the tuners by viewer channel request. Such a tuner is commonly referred to as a “network tuner.” A network tuner is not meant to be under user control, but instead, is designed to be under service provider control. A network tuner would be available to all client IRDs 310, server IRDs 304, and PVRs regardless of the channel allocations made by FTM 300.

A network tuner typically provides emergency audio/video information, or is otherwise a dedicated chain of tuner, demodulator, etc. that the service provider can use to provide information other than viewer channels to each IRD 308. Further, a network tuner can be present in either the FTM 300 or in the IRD 304/310 or PVR without departing from the scope of the present invention.

Such a dedicated tuner can be used to provide channel guide information, record content desired by the service provider on the recording device, or for other functions as needed or desired by the service provider.

CONCLUSION

This concludes the description of the preferred embodiments of the present invention. The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching.

A system for receiving satellite video signals for display on a monitor in accordance with the present invention comprises an antenna, and a server receiver, coupled to the antenna, wherein the server receiver maintains a list of satellite video signals to be recorded by the server receiver, the satellite video signals including network recorded data and metadata associated with the network recorded data.

Such a system further optionally comprises at least one client receiver, coupled to the server receiver, wherein the list is accessed by the server receiver and the at least one client receiver, when there is a conflict on the list, the server receiver resolves the conflict based on a predetermined protocol, the list including push events, the metadata being used to index the list, the at least one client receiver sending a request to the server receiver to record a selected satellite video signal, the server receiver reserving resources needed to fulfill the request from the at least one client receiver, the request being stored in a list by the server receiver, the list comprising requests that do not conflict with other requests, metadata associated with each request in the list being stored by the server receiver, the metadata associated with the satellite video signals being periodically updated, and the server receiver managing the stored requests based on the periodically updated metadata.

An apparatus for displaying video information in accordance with the present invention comprises a broadcast delivery system comprising a transmitter and a first receiver, a first monitor, coupled to the first receiver, a processor, coupled to the first receiver, wherein the processor maintains a list of satellite video signals to be recorded by the first receiver, the video information including network recorded data and metadata associated with the network recorded data.

Such an apparatus further optionally comprises at least one second receiver communicatively coupled with the first receiver, wherein the list is accessed by the first receiver and the at least one second receiver, at least one second monitor, respectively coupled to the at least one second receiver, wherein the first monitor and the second monitor independently display video information based on signal selection in the first receiver and the at least one second receiver, when there is a conflict on the list, the first receiver resolves the conflict based on a predetermined protocol, the metadata being used to index the list, the at least one second receiver sends a request to the first receiver to record a selected satellite video signal, the first receiver reserving resources needed to fulfill the request from the at least one second receiver, and metadata associated with each request in the list being stored by the first receiver.

It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto and the equivalents thereof. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended and the equivalents thereof. 

1. A system for receiving satellite video signals for display on a monitor, comprising: an antenna; and a server receiver, coupled to the antenna, wherein the server receiver maintains a list of satellite video signals to be recorded by the server receiver, the satellite video signals including network recorded data and metadata associated with the network recorded data.
 2. The system of claim 1, further comprising at least one client receiver, coupled to the server receiver, wherein the list is accessed by the server receiver and the at least one client receiver.
 3. The system of claim 1, wherein when there is a conflict on the list, the server receiver resolves the conflict based on a predetermined protocol.
 4. The system of claim 1, wherein the list includes push events.
 5. The system of claim 1, wherein the metadata is used to index the list.
 6. The system of claim 2, wherein the at least one client receiver sends a request to the server receiver to record a selected satellite video signal.
 7. The system of claim 6, wherein the server receiver reserves resources needed to fulfill the request from the at least one client receiver.
 8. The system of claim 6, wherein the request is stored in a list by the server receiver.
 9. The system of claim 8, wherein the list comprises requests that do not conflict with other requests.
 10. The system of claim 9, wherein metadata associated with each request in the list is stored by the server receiver.
 11. The system of claim 10, wherein the metadata associated with the satellite video signals is periodically updated.
 12. The system of claim 11, wherein the server receiver manages the stored requests based on the periodically updated metadata.
 13. An apparatus for displaying video information, comprising: a broadcast delivery system comprising a transmitter and a first receiver; a first monitor, coupled to the first receiver; a processor, coupled to the first receiver, wherein the processor maintains a list of satellite video signals to be recorded by the first receiver, the video information including network recorded data and metadata associated with the network recorded data.
 14. The apparatus of claim 13, further comprising at least one second receiver communicatively coupled with the first receiver, wherein the list is accessed by the first receiver and the at least one second receiver.
 15. The apparatus of claim 14, further comprising at least one second monitor, respectively coupled to the at least one second receiver, wherein the first monitor and the second monitor independently display video information based on signal selection in the first receiver and the at least one second receiver.
 16. The apparatus of claim 13, wherein when there is a conflict on the list, the first receiver resolves the conflict based on a predetermined protocol.
 17. The apparatus of claim 13, wherein the metadata is used to index the list.
 18. The apparatus of claim 14, wherein the at least one second receiver sends a request to the first receiver to record a selected satellite video signal.
 19. The apparatus of claim 18, wherein the first receiver reserves resources needed to fulfill the request from the at least one second receiver.
 20. The apparatus of claim 19, wherein metadata associated with each request in the list is stored by the first receiver. 